/**
 * @Copyright：2013 杭州海康威视系统技术有限公司
 * @Address：http://www.hikvision.com
 * @Project GSS加油站出入口车牌及客户管理系统
 */
package com.hlkj.baojin.utils.hik;

import org.apache.axis2.databinding.typemapping.SimpleTypeMapper;

/**
 * 定义WebService交互过程中的简单数据类型Map集合
 * @author xuweiyf1
 * @date 2013-7-18
 */
public class WsSimpleTypeMapper extends SimpleTypeMapper {
	
	/**
	 * 检查对象所属的类是否符合WebService传输的简单数据类型
	 * @param obj 目标对象
	 * @return true-简单数据类型，false-不是简单数据类型
	 */
	public static boolean isWsSimpleType(Object obj) {
		if (obj == null) {
			return false;
		}
		
		/* 如果对象是java的简单数据类型，直接返回true */
		if (isSimpleType(obj)) {
			return true;
		}
		
		/* 如果对象不是java的简单数据类型，检验它是否是Axit2支持的简单数据类型 */
		String objClassName = obj.getClass().getName();
		if (objClassName.equals("org.apache.axis2.databinding.types.UnsignedInt")) {
			return true;
		}
		if (objClassName.equals("org.apache.axis2.databinding.types.UnsignedLong")) {
			return true;
		}
		if (objClassName.equals("org.apache.axis2.databinding.types.UnsignedShort")) {
			return true;
		}
		if (objClassName.equals("org.apache.axis2.databinding.types.UnsignedByte")) {
			return true;
		}
		if (objClassName.equals("org.apache.axis2.databinding.types.Year")) {
			return true;
		}
		if (objClassName.equals("org.apache.axis2.databinding.types.Month")) {
			return true;
		}
		if (objClassName.equals("org.apache.axis2.databinding.types.Day")) {
			return true;
		}
		if (objClassName.equals("org.apache.axis2.databinding.types.YearMonth")) {
			return true;
		}
		if (objClassName.equals("org.apache.axis2.databinding.types.MonthDay")) {
			return true;
		}
		if (objClassName.equals("org.apache.axis2.databinding.types.Time")) {
			return true;
		}
		
		return false;
	}
	
}
